package com.cyf.xjtech_android;

import com.sun.jna.Structure;

import java.util.Arrays;
import java.util.List;

public class X_DEVICE_INFO extends Structure {
    public byte[] szMac = new byte[20];      // 设备Mac地址
    public byte[] szIpAddr = new byte[16];   // 设备IP地址
    public byte[] szSubNet = new byte[16];   // 设备子网掩码
    public byte[] szGateWay = new byte[16];  // 设备网关
    public int iPort = 0;          // 端口号

    public byte[] getSzMac() {
        return szMac;
    }

    public void setSzMac(byte[] szMac) {
        this.szMac = szMac;
    }

    public void setSzMac(String szMac) {
        byte[] str = szMac.getBytes();
        System.arraycopy(str, 0, this.szMac, 0, Math.min(str.length, this.szMac.length));
    }

    public byte[] getSzIpAddr() {
        return szIpAddr;
    }

    public void setSzIpAddr(byte[] szIpAddr) {
        this.szIpAddr = szIpAddr;
    }

    public void setSzIpAddr(String szIpAddr) {
        byte[] str = szIpAddr.getBytes();
        System.arraycopy(str, 0, this.szIpAddr, 0, Math.min(str.length, this.szIpAddr.length));
    }

    public byte[] getSzSubNet() {
        return szSubNet;
    }

    public void setSzSubNet(byte[] szSubNet) {
        this.szSubNet = szSubNet;
    }

    public void setSzSubNet(String szSubNet) {
        byte[] str = szSubNet.getBytes();
        System.arraycopy(str, 0, this.szSubNet, 0, Math.min(str.length, this.szSubNet.length));
    }

    public byte[] getSzGateWay() {
        return szGateWay;
    }

    public void setSzGateWay(byte[] szGateWay) {
        this.szGateWay = szGateWay;
    }

    public void setSzGateWay(String szGateWay) {
        byte[] str = szGateWay.getBytes();
        System.arraycopy(str, 0, this.szGateWay, 0, Math.min(str.length, this.szGateWay.length));
    }

    public int getiPort() {
        return iPort;
    }

    public void setiPort(int iPort) {
        this.iPort = iPort;
    }

    /**
     * 重写getFieldOrder获取字段列表
     *
     * @return 字段列表
     */
    @Override
    protected List<String> getFieldOrder() {
        return Arrays.asList("szMac", "szIpAddr", "szSubNet", "szGateWay", "iPort");
    }
}
